"""
使用pywebview框架实现Python直接启动桌面窗口式UI，同时保留Web访问能力
该文件实现了将Vue打包的前端与Python后端集成
"""

import time
import webview


def run_app():
    """
    运行应用，默认以桌面窗口模式启动
    """
    # 启动Flask后端服务作为独立线程
    from app import create_app
    import threading

    def start_flask_server():
        try:
            flask_app = create_app()
            print("正在启动Flask后端服务...")
            flask_app.run(host='127.0.0.1', port=5000, debug=False, use_reloader=False)
        except Exception as e:
            print(f"Flask服务启动失败: {e}")

    flask_thread = threading.Thread(target=start_flask_server, daemon=True)
    flask_thread.start()

    print("Flask后端服务已启动: http://127.0.0.1:5000")
    print("Vue UI访问地址: http://127.0.0.1:5000/ui")

    # 等待Flask服务启动
    time.sleep(2)

    # 创建并启动桌面窗口（在主线程中）
    try:
        print("正在创建桌面窗口...")
        webview.create_window(
            'Python-Vue交互演示',
            'http://127.0.0.1:5000/ui',
            width=1200,
            height=800,
            resizable=True,
            fullscreen=False
        )
        print("启动桌面窗口")
        webview.start()
    except Exception as e:
        print(f"桌面窗口启动失败: {e}")
        print("请通过浏览器访问: http://127.0.0.1:5000/ui")


if __name__ == '__main__':
    # 直接运行桌面应用模式
    run_app()
